The present invention concerns a method and a device for adapting turbocoders and the associated decoders to sequences of variable length and systems using them.
It applies equally well to the coding of data representing a physical quantity, to the coding of data in the form of codes capable of modulating a physical quantity, to the decoding of data modulated signals, and to the decoding of data representing physical quantities. These data can, for example, represent images, sounds, computer data, electrical quantities or stored data.
The invention finds an application in the field of convolutional codes. When the latter are used for implementing an iterative decoding, these codes are greatly improved when their coders contain a permutation device. In this case, they are usually referred to as xe2x80x9cturbocodesxe2x80x9d and the corresponding iterative decoder is referred to as a xe2x80x9cturbodecoderxe2x80x9d.
On these subjects, documents which serve as references are, on the one hand, the article by Messrs. C. BERROU, A. GLAVIEUX and P. THITIMAJSHIMA entitled xe2x80x9cNear Shannon limit error-correcting coding and decoding: turbocodesxe2x80x9d published with the reports of the xe2x80x9cICC""93xe2x80x9d conference, 1993, pages 1064 to 1070, and, on the other hand, the article by Messrs. C. BERROU and A. GLAVIEUX entitled xe2x80x9cNear Optimum error-correcting coding and decoding: turbo-codesxe2x80x9d published by IEEE Transactions on Communication, Volume COM-44, pages 1261 to 1271, in October 1996.
However, the formation of the permutation devices is far from being completely mastered. In general, this device uses square or rectangular matrices which are written into one row after another and read from one column after another. These matrices are generally very large, for example 256xc3x97256 in size.
According to another method, in an article entitled xe2x80x9cWeight distributions for turbo-codes using random and nonrandom permutationsxe2x80x9d published by the Jet Propulsion Laboratory, with xe2x80x9cTDA Progress Reportxe2x80x9d, number 42-122, on 15 Aug. 1995, Messrs. DOLINAR and DIVSALAR consider the permutations which, numbering the k information item positions between 0 and kxe2x88x921, move the binary information items placed in a position i to a position e i+f, for xe2x80x9cwell-chosenxe2x80x9d values of e and f.
In this document, they give only one example where k is a power of 2. Moreover, they do not discuss the possible mutual effect of the choice of the permutation device and that of the elementary convolutional coders (2,1) to be used for generating the coded sequences produced by the turbocoder (3,1).
The evaluation of the corresponding turbocode consists of simulating its use on a transmission channel with different values of signal/noise ratio and of measuring the minimum value of this ratio for which a predetermined value of error probability on the binary values is reached.
However, the use of simulations as an evaluation tool can lead to a few problems.
Let, for example, the permutation device with k=65536=256xc3x97256, mentioned above, be considered, and let a predetermined error probability equal to 10xe2x88x925 be chosen for simulating the performance of a turbocode using this device. Consequently, the mean number of errors on the binary values per 256xc3x97256 block will be close to 1, but it will not be known whether each item of binary information has the same error probability. This error probability could be quite high for binary values having an xe2x80x9cunfortunatexe2x80x9d position in the permutation device and this probability could be much lower for more xe2x80x9cfortunatexe2x80x9d positions.
One possible way for remedying this situation is to carry out a harmonious and joint design of the permutation device and the two convolutional coders in order to guarantee a reasonable uniformity of the error rate on the binary values after decoding, according to the position of the binary information in the permutation device.
Another problem concerns the lack of algebraic tools for specifying the permutation devices. It would be useful to have available means making it possible to specify a selection of permutation devices having performances representative of the set of all the permutation devices.
The invention principally concerns the transmission of information represented by sequences of binary symbols:
u=(u0,u1, . . . ,ukxe2x88x921),
referred to as xe2x80x9cinformation sequencesxe2x80x9d, which will be coded into a triplet of binary sequences,
v=(a,b,c),
each of these sequences a, b and c being, on its own, representative of the sequence u.
In the remainder of the description, for representing a sequence u, the form u=(u0, u1, . . . , ukxe2x88x921), and the associated polynomial form:
u(x)=u0x0+u1x1+ . . . +ukxe2x88x921xkxe2x88x921
are used indiscriminately.
Equivalent notations will be used for the sequences a, b and c. Using this second representation, the following is known for determining the triplet v=(a, b, c):
choosing a(x)=u(x);
choosing b(x)=u(x).h1(x)/g(x),
where g(x) is a polynomial, for example g(x)=1+x+x3, corresponding, according to the sequential representation, to the sequence (1, 1, 0, 1); and h1(x) is a polynomial, for example h1(x)=1+x+x2+x3, corresponding to the sequence (1, 1, 1, 1); and
referring to as a*, a sequence formed by permutation of the binary data items of the sequence a, choosing c(x)=a*(x).h2(x)/g(x)
where h2(x) is a polynomial, for example h2(x)=(1+x2+x3) corresponding to the sequence (1, 0, 1, 1).
Any choice of the polynomials g(x), h1(x), h2(x) and of the permutation specifying the interleaver which associates the permuted sequence a* with the sequence a, specifies a coder which will be referred to as a xe2x80x9cturbocoderxe2x80x9d. The set of sequences which can be produced by a specified turbocoder will be referred to as a xe2x80x9cturbocodexe2x80x9d.
In the remainder of the description, the elementary recursive convolutional coder which produces the sequence b is referred to as the xe2x80x9cfirst coderxe2x80x9d, and the one which produces the sequence c is referred to as the xe2x80x9csecond coderxe2x80x9d.
The polynomial divisions used are of the division according to ascending powers type, well known to persons skilled in the art. They use modulo 2 arithmetic. The sequences a, b and c are binary sequences and in the general case the divisions which define b and c have a remainder.
This type of coding method has the advantage of lending itself to an effective iterative decoding which is not very complex and not very expensive.
For implementing it, a number of questions arise:
I/ How are the polynomials g(x), h1(x) and h2(x) chosen?
II/ How is the permutation of the terms of the sequence a which produces the sequence a* chosen ? Among the choices proposed, three examples of interleavers, that is to say operators which permute the terms of the sequence a, in order to form the sequence a*, are given below:
A) in the first example, after having arranged the terms of a in a rectangular table, successively row by row and, for each row, from left to right, the sequence a* is formed by successively taking, from this table, the terms column after column and, for each column, from top to bottom. For example, in the case of sequences of six terms and the use of a table of two rows of three columns, the interleaver transforms the sequence a=(a0, a1, a2, a3, a4, a5) into the sequence a*=(a0, a3, a1, a4, a2, a5).
B) in a second example, the i-th term (i=0, 1, 2, . . . ) a*i of the sequence a* is chosen as being the term aj of the sequence a, with j=s.i+t calculated modulo the number of terms in the sequence a, s and t being integers. For example, if the number of terms in the sequence a is six and if s=5 and t=3, the interleaver transforms the sequence a=(a0, a1, a2, a3, a4, a5) into the sequence a*=(a3, a2, a1, a0, a5, a4).
C) in the third example, the permutation chosen is random.
III/ How can it be avoided that the division defining b(x) has a remainder ? and
IV/ How can it be avoided that the division defining c(x) has a remainder ?
Answering these last two questions amounts to solving a problem frequently mentioned in the literature on turbocodes which is that of the xe2x80x9creturn to the zero statexe2x80x9d of the elementary convolutional coders defining b and c. Since the turbocoders have two elementary recursive coders, the second of which uses a permutation a* of the sequence a, it is desired to guarantee that the polynomials a(x) and a*(x) representing the information sequence u(x) are simultaneously divisible by g(x). Ensuring this condition of divisibility of a(x) is simple since it is sufficient to construct a(x) from u(x) by supplementing u(x) with stuffing symbols, equal in number to the degree of g(x) and the sole function of which is to guarantee the absence of a remainder in the division used to produce b(x) from a(x).
Choosing a permutation producing a*(x) from a(x) which guarantees both the divisibility of a*(x) by g(x) and good error correction performance for the turbocode thus specified is, on the other hand, more difficult.
This problem can bring about disparities between the error probabilities after decoding of the different bits constituting u(x).
In an article which appeared in Volume 31, No. 1 of the journal xe2x80x9cElectronics Lettersxe2x80x9d on Jan. 5, 1995, Messrs. BARBULESCU and PIETROBON explain that an interleaver can be described by successively and cyclically arranging the terms of the sequence a in a number of sequences equal to the degree of the polynomial g(x) incremented by one, and that, in this case, permutations internal to each of the sequences thus formed bring about an equality between the remainder of the division defining the sequence b and that of the division defining the sequence c.
However, and contrary to what is said in this article, this assertion is true only if the polynomial g(x) is of the form xcexa3i=0 to m xi.
In an article entitled xe2x80x9cTurbo-block-codesxe2x80x9d and published with the reports of the xe2x80x9cturbocodingxe2x80x9d seminar organised by the Institute of Technology in Lund (Sweden) (Department of Applied Electronics) in August 1996, Messrs. C. BERROU, S. EVANO and G. BATTAIL explain that, by arranging the terms of the sequence u, cyclically, in a number of columns equal to a multiple of the degree N0 of the polynomial of type xnxe2x88x921 of smallest strictly positive degree which is divisible by g(x), permutations internal to each of the columns thus formed bring about the situation that the sum of the remainder of the division defining the sequence b and that of the division defining the sequence c is null, with the result that the concatenation of the sequences is divisible by g.
This document, just like the previous one, therefore restricts the choice of interleavers to particular forms working independently on subsets of the terms of the sequence a, applying internal permutations to them. It does not however guarantee that individually a(x) and a*(x) are divisible by g(x). The only thing guaranteed is the divisibility by g(x) of the polynomial representing the concatenation (a, a*), consisting of putting the two sequences a and a* end to end.
The consequence is a possible loss of efficiency of the decoder since the latter is not informed about the state the coder had at the instant marking the end of the calculation of b and the start of the calculation of c.
None of the articles cited propose an effective choice of interleaver.
With a view to overcoming these drawbacks, in a first instance, the inventors perfected a solution guaranteeing the return to zero not only of the sequence to be coded but also of each of the redundant sequences. This solution is explained in the following paragraphs:
A turbocoder of 1/3 efficiency can be considered as a pair of convolutional systematic coders (see FIG. 1) with divisor polynomials such that the first coder produces a check sequence from the sequence of symbols to be coded u and the second coder produces a check sequence from an interleaved sequence u* obtained by interleaving the sequence u. In this context, the simultaneous return to zero of the two coders is a classic problem. One way of solving it has been found by the inventors and is summarized below.
Let g(x) be the divisor polynomial of a turbocoder. Let m be the degree of the polynomial g(x) and N0 the smallest integer such that g(x) is a divisor of the polynomial xN0+1. This number N0 will be referred to as the xe2x80x9cperiodxe2x80x9d of g(x). For reasons described below, g(x) is considered to be a xe2x80x9cpolynomial without squarexe2x80x9d and this means that N0 is an odd number.
Let also n be an odd multiple of N0: n=M N0.
A sequence of symbols, u, then has a polynomial representation, u(x), of degree nxe2x88x92mxe2x88x921, with binary coefficients, and this polynomial u(x) is pre-encoded into:
a(x)=u(x)+xcexa3i=nxe2x88x92m to nxe2x88x921aixi
where the m binary symbols ai are chosen in such a way that a(x) is a multiple of g(x). In consequence of this precoding, and the chosen values of the parameters, if a(x) is a multiple of g(x), then a*(x)=a(xe) modulo xn+1 is also a multiple of g(x) for any value of e which is a power of 2.
In the remainder of the description, this type of permutation and interleaver is referred to as an xe2x80x9cx to xe typexe2x80x9d.
Here, it is necessary to consider that g(x) has no multiple factors since, in general, a*(x) has the guarantee of being divisible only by the irreducible factors of g(x).
The coded version of u is then given by v=[a, ah1/g, a*h2/g] where all the components are polynomials, and where, in particular, a*h2/g is also a polynomial, by virtue of the definition of a* and the choice of e as a power of 2.
More generally, the inventors discovered that the interleavers guaranteeing the return to zero, not only of the check sequence coming from the first coder but also of that originating from the second coder, had to meet the following condition:
each xe2x80x9cpermutedxe2x80x9d sequence, aij*, (i=1, . . . ,K; j=1, . . . ,M1), is obtained by a permutation of the corresponding sequence ai, the said permutation being, in a representation where the binary data items of each sequence ai are written, row by row, into a table with N0 columns and M rows, N0 being the smallest integer such that each divisor polynomial gi(x) divides xN0+1, the result of any number of so-called elementary permutations, each of which:
either has the property of transforming the cyclic code of length N0 and with generator polynomial gi(x) into an equivalent cyclic code with generator polynomial gij(x) which may be equal to gi(x), and acts by permutation on the N0 columns of the table representing ai,
or is any permutation of the symbols of a column of the said table.
This method applies to blocks of a given length allowing each of the elementary coders to be suitably reset to zero. However, the input sequence must have a certain length depending solely on the divisor polynomial or polynomials used. This must be a multiple of a number N0.
It should be noted here that, in this particular embodiment of the teaching mentioned above with an xe2x80x9cx to xexe2x80x9d type interleaver, the length of the sequences to be coded must be odd whereas, in the general case, it can be even.
When the sequence of symbols to be coded does not correspond to this number (that is to say when the sequence of symbols to be coded, to which have been added so-called xe2x80x9cpaddingxe2x80x9d symbols which guarantee the divisibility of the polynomial representation of the resulting sequence, by a predetermined polynomial, has a length which is not a multiple of N0 and, in the preferential embodiment, an odd multiple of N0), the initial teaching of the inventors cannot be used directly. The same applies when the length of the sequences varies from one sequence to another.
Furthermore, the transmission conditions, the desired efficiency, the type of data, the type of transmission channel, or the signal/noise ratio of the channel are not taken into account, in the first instance of the invention produced by the inventors, this first instance not forming part of the art prior to the present invention, but, on the contrary, providing essential characteristics.
Moreover, in a turbocoder, the dimensioning of the memory cannot easily be adapted to transmission modes taking into account different block lengths.
If the pseudo-random interleavers of the prior art are considered, it is necessary to store all the interleavers capable of being used and the memory size required can be large.
The present invention intends to remedy these drawbacks.
To that end, the present invention, according to a first aspect, relates to a coding method, characterised in that:
1/ it takes into account at least one selection criterion related to a transmission of binary symbols representing a physical quantity,
2/ it has an operation of selecting transmission parameters, according to at least one selection criterion, each said selected transmission parameter being in the set of parameters comprising:
a number K, greater than or equal to 1, of sequences ai (i=1, . . . , K) of binary symbols, to be coded,
an integer M1, equal to or greater than 2,
a divisor polynomial gi(x),
an integer M,
an interleaver, and
a multiplier polynomial fij(x),
3/ it has an operation of inputting the number K of sequences ai (j=1, . . . , K) of binary data, each sequence ai having:
a polynomial representation ai(x) which is a multiple of a polynomial gi(x), and
a number of binary data items equal to the product of the integer number M and the integer N0, the smallest integer such that the polynomial xN0+1 is divisible by each divisor polynomial gi(x);
4/ it has a first production operation for a number K*M1 of so-called xe2x80x9cpermutedxe2x80x9d sequencesxe2x80x9d, aij*, (i=1, . . . ,K;j=1, . . . ,M1), each sequence aij*
being obtained by a permutation of the corresponding sequence ai, the said permutation being, in a representation where the binary data items of each sequence ai are written, row by row, into a table with N0 columns and M rows, the result of any number of so-called elementary permutations, each of which:
either has the property of transforming the cyclic code of length N0 and with generator polynomial gi(x) into an equivalent cyclic code with generator polynomial gij(x) which may be equal to gi(x), and acts by permutation on the N0 columns of the table representing ai,
or is any permutation of the symbols of a column of the said table; and
having, in consequence, a polynomial representation aij*(x) which is equal to a polynomial product cij(x)gij(x),
at least one permuted sequence aij* being different from the corresponding sequence ai,
5/ it has a second production operation for M1 redundant sequences, the polynomial representation of which is equal to xcexa3 fij(x) cij(x), for j=1, . . . ,M1, each polynomial fij(x) being a polynomial of degree at most equal to the degree of the polynomial gij(x) with the same indices i and j.
By virtue of these provisions, the parameters for implementation of the turbocoder can be adapted to the transmission of symbols, to their number or to the transmission conditions. Thus, a compromise between ease of coding and/or of decoding, speed of decoding, passband, in terms of number of symbols or of frames correctly transmitted per second, and transmission time of each symbol, can be optimized according to the selection criteria considered.
For a better understanding of the invention, a very particular example embodiment is given below: in an example where the selection criterion is the length of the sequence of symbols to be coded, for given coding polynomials, of which notably a polynomial g(x) of xe2x80x9cperiod N0xe2x80x9d and with no multiple roots is used in both elementary coders (it is assumed in order to simplify the explanation that the same feedback polynomial g(x), known to persons skilled in the art also by the name xe2x80x9cdivisorxe2x80x9d polynomial, is used in the elementary coders before and after interleaving), the implementation of the method of the invention has the following steps:
1/ The length of the sequence is first analyzed and a value n, a multiple of N0 and greater than this length, is determined.
2/ In the transmission device, so-called xe2x80x9cpaddingxe2x80x9d bits are added to the input sequence so that the polynomial representation of the resulting sequence is divisible by the feedback or xe2x80x9cdivisorxe2x80x9d polynomial g(x).
3/ Null stuffing bits are then added at the end of this sequence so that the resulting sequence has a length n.
4/ An interleaver is generated with parameters chosen as a function of n.
5/ The sequence is xe2x80x9cturbocodedxe2x80x9d.
6/ The stuffing bits are removed from the sequence identical to the sequence to be coded.
7/ The sequence is encapsulated in a radio frame which is, itself, modulated and then transmitted on the transmission channel which connects the transmission device to the receiving device.
8/ The receiving device demodulates the received signal, extracts the encapsulated signal from the radio frame, analyzes the length n of this sequence and from it deduces the number of stuffing bits and the turbodecoder parameters.
9/ An interleaver and a de-interleaver are generated with parameters chosen as a function of n.
10/ The received sequence to which the stuffing bits have been added is decoded.
11/ The stuffing and padding bits are removed and an estimate of the input sequence is delivered to its destination.
The reader who wishes to know the stuffing method better can refer to the following article:
xe2x80x9cA new scheme to terminate all trellis of turbo decoder for variable block lengthxe2x80x9d, the authors of which are Koora and Finger (Dresden Univ. Germany), International Symposium on Turbo codes, Brest, France, 1997.
The present invention therefore allows a dynamic adaptation of the turbocoder and of the decoder to each selection criterion, such as the length of the input sequence.
According to particular characteristics, during an addition operation, there are added, to the sequence a resulting from the padding bits addition operation, so-called xe2x80x9cpaddingxe2x80x9d additional data items, the number of which is equal to the degree of the divisor polynomial g(x) and which guarantee the divisibility of the polynomial representation of the sequence resulting from the addition operation by the divisor polynomial g(x).
Thus, the padding operation guarantees the return to zero of each of the coders. The consequence is an optimization of the turbocoder performance.
According to particular characteristics, an addition operation includes a stuffing operation during which are added, to the sequence a resulting from the padding bits addition operation, so-called xe2x80x9cstuffingxe2x80x9d additional data items, of predetermined value, which guarantee that the number n of symbols of the binary sequence resulting from the stuffing operation meets the conditions of being:
greater than or equal to (nxe2x80x2+m),
a multiple of N0, the smallest integer such that xN0+1 is divisible by g(x), and
odd.
By virtue of these provisions, the method to which the present invention relates provides an adaptation to all the values of symbol sequence length since the number of elements of the interleaver must here be an odd multiple of N0 whereas the length of the sequence of symbols to be coded might not be a multiple of N0, nor an odd number.
According to particular characteristics, at least one of the sequences resulting from the coding operation has not been subject to any interleaving and in that it has an operation of removing data items from at least one sequence resulting from the coding operation not having been subject to any interleaving.
Thus, the number of symbols to be transmitted on the transmission channel is reduced.
According to particular characteristics, during the first production operation for a number K*M1 of so-called xe2x80x9cpermutedxe2x80x9d sequences, aij*, (i=1, . . . ,K; j=1, . . . ,M1), each sequence aij* has a polynomial representation equal to aij*(x)=ai*(xeij), modulo (xn+1), where
n is the product of the number M and the integer N0,
eij is a number relatively prime with n,
the polynomial gij(x) is the generator polynomial of the smallest cyclic code of length N0 containing the polynomial gi(xeij) modulo (xN0+1),
The advantages of these provisions are those of the so-called xe2x80x9cx to xexe2x80x9d interleavers which are easily adapted to an xe2x80x9con the flyxe2x80x9d generation, by the use of simple algorithms. Furthermore, since these algorithms are capable of being carried out by simple logic circuits or by a microprocessor, the implementation of the present invention is advantageously combined with this type of turbocoder.
The present invention allows, furthermore, a saving in the amount of memory used since the xe2x80x9cx to xexe2x80x9d type interleaver is fully defined, and simple to generate from values of e and n.
By virtue of these provisions, the present invention is simple to implement and has very good performance in terms of bit and frame error rates as a function of the signal/noise ratio.
According to particular characteristics, during the transmission parameter selection operation, a value of the exponent e is selected, as a function of at least one selection criterion. By virtue of these provisions, the particular parameters of the xe2x80x9cx to xexe2x80x9d type interleavers are adapted to the selection criteria mentioned above in order to optimize the turbocoder performance.
According to particular characteristics, the coding method to which the present invention relates, as briefly described above, has an interleaver generation operation, the said interleaver defining the permutations performed during the first production operation, and in that, during the said generation operation, the interleaver is constituted by the iterative implementation of an addition operation, modulo a predetermined number.
Thus, a simple addition, modulo n, allows the generation of the interleaver, which simplifies this generation and can considerably reduce its duration.
According to particular characteristics, the method to which the invention relates, as briefly described above
1/ takes into account:
a value of K equal to 1,
a xe2x80x9cpolynomial without squarexe2x80x9d g1(x),
N0, the smallest integer such that g1(x) is a divisor of the polynomial xN0+1;
n, an odd multiple of N0;
a sequence u of n symbols ui to be coded; and
e, a power of 2, for which the residue of e modulo N0 is equal to 1,
2/ has:
an operation of composing a so-called xe2x80x9cconcatenatedxe2x80x9d sequence uu* composed successively, on the one hand, of the sequence of symbols u, having n symbols, and, on the other hand, of a sequence of symbols u* defined by its polynomial representation, u*(x)=u(xe) modulo xn+1,
a coding operation including at least one division of the concatenated sequence uu* by the polynomial g1(x) in order to form a so-called xe2x80x9ccheckxe2x80x9d sequence.
By virtue of these provisions, the addition of padding bits is unnecessary. The efficiency is therefore better and the implementation of the invention is simplified.
According to a second aspect, the present invention relates to a decoding method, characterised in that:
1/ it takes into account at least one selection criterion related to a transmission of binary symbols representing a physical quantity,
2/ it has an operation of selecting transmission parameters, according to at least one selection criterion, each said selected transmission parameter being in the set of parameters comprising:
an integer M1, equal to 2,
a number K, greater than or equal to 1, of sequences vi(i=1, . . . , K+M1) of symbols to be decoded,
a divisor polynomial gi(x),
an integer M,
an interleaver/de-interleaver pair, and
a multiplier polynomial fij(x),
3/ it has an operation of inputting the number K+M1 of sequences vxe2x80x2i(i=1, . . . ,K+M1) of symbols to be decoded,
4/ it has an operation of decoding K sequences of symbols using the divisor polynomials gij(x), the said decoding operation providing K so-called xe2x80x9cdecodedxe2x80x9d sequences.
5/ it has a permutation operation, the said permutation being, in a representation where the binary data items of each sequence vi are written, row by row, into a table with N0 columns and M rows, the result of any number of so-called elementary permutations, each of which:
either has the property of transforming the cyclic code of length N0 and with generator polynomial gi(x) into an equivalent cyclic code with generator polynomial gij(x) which may be equal to gi(x), and acts by permutation on the N0 columns of the table representing ai,
or is any permutation of the symbols of a column of the said table,
at least one permuted sequence aij* being different from the corresponding sequence ai.
The invention also relates to:
an information storage means readable by a computer or a microprocessor storing instructions of a computer program, characterised in that it allows the implementation of the method of the invention as briefly described above, and
an information storage means which is removable, partially or totally, and readable by a computer or a microprocessor storing instructions of a computer program, characterised in that it allows the implementation of the method of the invention as briefly described above.
The invention also relates to:
a device for processing signals representing speech, which has a device as briefly described above,
a data transmission device having a transmitter adapted to implement a packet transmission protocol, which has a device as briefly described above,
a data transmission device having a transmitter adapted to implement the ATM (Asynchronous Transfer Mode) packet transmission protocol, which has a device as briefly described above,
a data transmission device having a transmitter adapted to implement the packet transmission protocol, on an ETHERNET (registered trade mark) type network,
a network station, which has a device as briefly described above,
a data transmission device having a transmitter transmitting on a wireless channel, which has a device as briefly described above, and
a device for processing sequences of signals representing at most one thousand binary data items, which has a device as briefly described above.
The invention also relates to an information processing device comprising:
first coding means for inputting a first sequence represented by a multiple of a predetermined polynominal and producing a second sequence;
permuting means for producing a permuted sequence represented by said multiple of said predetermined polynominal by permuting said first sequence;
second coding means for inputting said permuted sequence and producing a third sequence; and
controlling means for controlling said permuting means in accordance with a data length of said first sequence.
According to a particular characteristic, the data length of said first sequence varies in accordance with said predetermined polynominal.
According to a particular characteristic, said controlling means modifies the permutation operation performed by said permuting means in accordance with the data length of said first sequence.
According to a particular characteristic, said controlling means further modifies the permutation operation performed by said permuting means in accordance with the type of information included in said first sequence.
According to a particular characteristic, said controlling means further modifies the permutation operation performed by said permuting means in accordance with the condition of transmission.
According to a particular characteristic, said first sequence includes at least either one of audio information, character information or image information.
According to a particular characteristic, this information processing device performs turbocoding of said first sequence.
According to a particular characteristic, this information processing device is a data communication device.
According to a particular characteristic, this information processing device is a wireless communication device.
The invention also relates to an information processing method comprising:
first coding step of inputting a first sequence represented by a multiple of a predetermined polynominal and producing a second sequence;
permuting step of producing a permuted sequence represented by said multiple of said predetermined polynominal by permuting said first sequence;
second coding step of inputting said permuted sequence and producing a third sequence; and
controlling step of controlling said permuting step in accordance with a data length of said first sequence.
The invention also relates to a storage medium readable by a computer, storing a program for performing:
first coding process for inputting a first sequence represented by a multiple of a predetermined polynominal and producing a second sequence;
permuting process for producing a permuted sequence represented by said multiple of said predetermined polynominal by permuting said first sequence;
second coding process for inputting said permuted sequence and producing a third sequence; and
controlling process for controlling said permuting process in accordance with a data length of said first sequence.
The invention also relates to an information processing device comprising:
first decoding means for inputting a first sequence and a second sequence which is represented by a multiple of a predetermined polynominal;
first permuting means for permuting an output of said first decoding;
second decoding means for inputting the output of said second decoding means and a third sequence represented by said multiple of said predetermined polynominal;
second permuting means for permuting the output of said second decoding means and supplying the result of said permutation to said first decoding means; and
controlling means for controlling said first permuting means and said second permuting means in accordance with a data length of said first sequence.
According to a particular characteristic, the data length of said first sequence varies in accordance with said predetermined polynominal.
According to a particular characteristic, said controlling means modifies the permutation operation performed by said first permuting means and the permutation operation performed by said second permuting means in accordance with the data length of said first sequence.
According to a particular characteristic, said controlling means further modifies the permutation operation performed by said first permuting means and the permutation operation performed by said second permuting means in accordance with the type of information included in said first sequence.
According to a particular characteristic, said controlling method further modifies the permutation operation performed by said first permuting means and the permutation operation performed by said second permuting means in accordance with the condition of transmission.
According to a particular characteristic, said first sequence includes at least either one of audio information, character information and image information.
According to a particular characteristic, this information processing device performs turbodecoding of said first sequence.
According to a particular characteristic, this information processing device is a data communication device.
According to a particular characteristic, this information processing device is a wireless communication device.
The invention also relates to an image processing method comprising:
first decoding step of inputting a first sequence and a second sequence which is represented by a multiple of a predetermined polynominal;
first permuting step of permuting an output of said first decoding step;
second decoding step of inputting an output of said first permuting step and a third sequence represented by said multiple of said predetermined polynominal;
second permuting step of permuting an output of said second decoding step and supplying the result of said permutation to said first decoding means; and
controlling step of controlling said first permuting step and said second permuting step in accordance with a data length of said first sequence.
The invention also relates to a storage medium readable by a computer, storing a program for performing:
first decoding process for inputting a first sequence and a second sequence which is represented by a multiple of a predetermined polynominal;
first permuting process for permuting an output of said first decoding process;
second decoding process for inputting an output of said permuting process and a third sequence represented by said multiple of said predetermined polynominal;
second permuting process for permuting and output of said second decoding process and supplying the result of said permutation to said first decoding process; and
controlling process for controlling said first permuting process and said second permuting process in accordance with a data length of said first sequence.
These coding and decoding devices, these coding and decoding methods and these signal processing, data transmission and sequence processing devices, this network, these information processing devices and methods, these storage media and this image processing method having the same particular characteristics and the same advantages as the coding method as briefly described above, these particular characteristics and these advantages are not repeated here.